#!/usr/bin/env node

/* 
TODO:
创建 04-process 目录
编写 01-information.js 脚本
向控制台打印 CPU 架构信息以及操作系统版本信息 os.arch(),process.arch;os.release()
打印进程 id 信息以及 Node.js 可执行文件的绝对路径信息  
process.pid,process.execPath
在脚本中增加标准输入流的读取操作，让程序暂停执行
执行 Linux 命令 ps aux，验证当前进程的 ID 信息和程序中得到的进程 ID 信息相同

打印 Node.js 版本信息，当前登录用户 id 信息，当前登录用户所属组 id 信息以及当前脚本所在路径信息

在命令行执行 node -v 命令，验证程序输出的 node.js 版本信息是否正确
在命令行执行 id 命令，验证程序输出的登录账户 id 信息是否正确
在命令行执行 pwd 命令，验证程序输出的当前工作目录信息是否正确
打印内存使用情况
打印环境变量
在命令行执行 env 命令，验证程序输出的环境变量信息正确
打印编译当前 Node.js 可执行文件的配置选项
生成当前进程的诊断报告，查看诊断报告
打印当前操作系统的 CPU 信息，运行 cat /proc/cpuinfo 命令，验证程序输出是否正确
打印当前操作系统的运行时长信息，运行 uptime 命令，验证程序输出是否正确
打印当前操作系统的版本信息，运行 uname 命令，验证程序输出是否正确
打印当前操作系统的内核信息，运行 uname -a 命令，验证程序输出是否正确
打印当前操作系统的网卡信息，运行 ifconfig 命令，验证程序输出是否正确
打印当前操作系统的用户信息，运行 id 命令，验证程序输出是否正确 */


const log = console.log;

log(`architecture: ${process.arch}`);
log(`platform:     ${process.platform}\n`);

log(`process id:   ${process.pid}`);
log(`exePath:      ${process.execPath}\n`);

log(`node version: ${process.version}`);
log(`user id:      ${process.getuid()}`);
log(`group id:     ${process.getgid()}`);
log(`cwd:          ${process.cwd()}\n`);

log('memoryUsage:');
console.dir(process.memoryUsage());

log('env:');
log(process.env);
log(`host name: ${process.env.HOSTNAME}`);

console.log('\nApp config:');
log(process.config);

process.report.writeReport();

const os = require('os');
log(os.cpus());
log(`linux uptime: ${os.uptime()} s`);
log(os.platform());
log(os.version());
log(os.networkInterfaces());
log(os.userInfo());



